package com.twu.biblioteca.view.command;

import com.google.inject.Inject;

import com.twu.biblioteca.util.ConsoleReader;
import com.twu.biblioteca.util.ConsoleWriter;
import com.twu.biblioteca.view.console.ConsoleViewController;

public abstract class Command {
  protected ConsoleReader consoleReader;
  protected ConsoleWriter consoleWriter;

  @Inject
  public void setConsoleReader(ConsoleReader consoleReader) {
    this.consoleReader = consoleReader;
  }

  @Inject
  public void setConsoleWriter(ConsoleWriter consoleWriter) {
    this.consoleWriter = consoleWriter;
  }

  public abstract void execute(ConsoleViewController viewController);

  public enum Type {
    StartUp, ReturnBook, BookList, Quit, Login, ReturnMovie, CheckOutMovie, MovieList,
    UserInfo, CheckOutBook
  }
}
